今天要介紹最後一個小遊戲,讓我們開始吧!
目錄
遊戲機制介紹
障礙物-山的移動
障礙物-山隨機產生
只要偵測到手部Grab的動作,帝江就會往上飛一點,如果偵測到連續動作,帝江就會飛越高,玩家要用Grab動作控制帝江不要撞到並且飛越山脈。
帝江 | 山 | 山 | 山 |
---|---|---|---|
RectTransform rec;
public float speed;
在山的產生器再產生山以後,用來給山呼叫的set函式,設定山的初始位置以及旋轉。
public void setRec(RectTransform setPoint) {
rec = setPoint;
}
public void setRotation(){
rec.localEulerAngles = new Vector3(0f, 0f, 180.0f);
rec.anchoredPosition = new Vector3(2755, 440, 0);
}
void Update(){
rec.position -= new Vector3(speed * Time.deltaTime, 0, 0);
}
以上就是山的移動,接下來是山的產生。
時間到了就會產生新的山,所以需要計數器、山的物件、以及要產山生的點。
float f_nextGenTime = 3;
public GameObject[] mountainPrefab;
public RectTransform rec;
先判斷計數器超過1了沒
void Update()
{
if (f_nextGenTime > 1f)
{
int num = Random.Range(0, 3);
Generate(num);
num = Random.Range(0, 3);
GenerateAbove(num);
f_nextGenTime = 0;
}
else {
f_nextGenTime += Time.deltaTime;
}
}
void Generate(int num) {
GameObject mountain = Instantiate(mountainPrefab[num]) as GameObject;
mountain.GetComponent<MountainMove>().setRec(rec);
mountain.transform.SetParent(GameObject.FindGameObjectWithTag("canvas").transform, false);
}
void GenerateAbove(int num){
GameObject mountain = Instantiate(mountainPrefab[num]) as GameObject;
mountain.GetComponent<MountainMove>().setRotation();
mountain.transform.SetParent(GameObject.FindGameObjectWithTag("canvas").transform, false);
}
以上就是障礙物-山的移動與產生,明天會寫到主角跳躍與手部偵測的部分,那就明天見囉~